package com.jiangli.annotation;

import java.lang.annotation.*;

/**
 * 接口限流注解
 * 用于标注需要进行请求频率限制的接口方法
 */
@Target({ElementType.METHOD}) // 仅作用于方法
@Retention(RetentionPolicy.RUNTIME) // 运行时保留，可通过反射获取
@Documented // 生成文档时包含该注解信息
public @interface RateLimit {

    /**
     * 滑动窗口大小（毫秒）
     * 默认1分钟（60000毫秒）
     */
    long windowSize() default 60000;

    /**
     * 窗口内最大请求数
     * 默认100次
     */
    int maxRequests() default 100;

    /**
     * 限流提示信息
     */
    String message() default "请求过于频繁，请稍后再试";
}